Cloud computing refers to a computing paradigm in which one or more services (e.g., resources) are provided such that a service request may be submitted without having knowledge of one or more hardware infrastructures supporting the service (e.g., host machines). Such services may include virtual computing services and virtual connectivity services. A set of virtual computing services, or a virtual machine (VM), is managed by host software that emulates, or virtualizes, physical computing resources of a host machine. A set of virtual connectivity services, or a virtual network, is managed by host software that virtualizes the physical connectivity resources of a host machine.
In existing implementations, a VM is referenced using a physical address of the physical network (e.g. a VLAN according to IEEE 802.1Q) to which its respective host machine is connected. Consequently, the VM is associated with the physical location of its physical machine. Unfortunately, such association to a physical location prevents the VM from being freely migrateable to a different host machine. Dependence on a physical location also prevents the virtual network as a whole from being freely migrateable to a different network environment.